In a communications network, switching devices (“switches”) receive data at one of a set of input interfaces and forward the data on to one or more of a set of output interfaces. Users typically require that such switching devices operate as quickly as possible in order to maintain a high data rate. Switches are typically data link layer devices that enable multiple physical network (e.g., local area network (LAN) or wide area network (WAN)) segments to be interconnected into a single larger network. In the most general sense, these types of networks transport data in the form of frames. Generally, a frame is a logical grouping of information sent as a data unit over a transmission medium. Frames typically include header and/or trailer information that surrounds user data contained in the unit. The terms cell, datagram, message, packet and segment are also used to describe logical information groupings at various layers of the Reference Model for Open Systems Interconnection (“OSI reference model”) and in various technology circles. As used herein, the term “frame” should be understood in its broadest sense, and can encompass other terms such as cell, datagram, message, packet, and segment, and the like.
FIG. 1 illustrates a simplified block diagram of a switching network 100, such as a LAN switching network. In this example, a switch 102 includes switching fabric 110 and multiple line cards 120 and 130. Switch 102 connects various network devices 122, 124, 132, and 134 to each other through switching fabric 110 via line cards 120 and 130. Network devices 122, 124, 132, and 134 can, in general, include a variety of different devices including computer systems, output devices, storage devices, communications devices, or other network components such as routers, other switches, and even other networks.
It will be noted that the variable identifier “N” is used in FIG. 1 to more simply designate the final element (e.g., line card N 130) of a series of related or similar elements. The repeated use of such variable identifiers is not meant to imply a correlation between the sizes of such series of elements, although such correlation may exist. The use of such variable identifiers does not require that each series of elements has the same number of elements as another series delimited by the same variable identifier. Rather, in each instance of use, the variable identified by “N” may hold the same or a different value than other instances of the same variable identifier.
Switching network 100 can employ one or more of a variety of different communication protocols enabling data communication between network devices. Line cards 120 and 130 generally take the form of an I/O interface card that typically performs data frame analysis as part of the switching process. Switching fabric 110 can also be implemented in a variety of ways. Three common types of switching fabrics are single-bus architectures, shared-memory architectures, and crossbars. Single-bus switching fabric architectures use a central fabric element within the switch to which all the ports of the switch communicate. Each port arbitrates for access to this fabric because there is one central switching element. With shared-memory architectures, a shared memory stores data frames and a high-speed ASIC reads and writes to the memory. Frames come into the architecture, a switching core places them in memory and then queues them to their outbound port. Buffering is internal to the switching fabric in this architecture, and buffers may be either fixed or dynamic. Crossbars use a mesh within the switching fabric to connect all the ports or all the line cards at high speed. Crossbars can be highly efficient for “balanced traffic,” e.g., if port 1 and port 2 are communicating, and port 3 and port 4 are communicating then the crossbar directs those transmissions onto different paths.
It is increasingly desirable that switches support network administrative features including access control, accounting, quality of service (QoS), class of service (CoS) features, and other similar features. Accordingly, it is desirable to have data frame prioritization and interrupt techniques, and line cards and switch fabrics in support thereof, to provide additional features for network switches while allowing such switches to provide high bandwidth and throughput.